package com.i2works.smartluolong.manage.dal.admin.dao;


import com.i2works.smartluolong.manage.entity.admin.AdminResDO;
import com.i2works.smartluolong.manage.entity.admin.AdminResQuery;
import com.i2works.smartluolong.utils.basecommon.BaseCommonDAO;
import com.i2works.smartluolong.utils.exception.DAOException;
import org.apache.ibatis.annotations.Mapper;
import org.springframework.stereotype.Repository;

import java.util.List;
import java.util.Set;


/**
 * 管理员权限资源DAO接口
 *
 * @author koal koal@vip.qq.com
 * @date 2015年11月3日 下午10:48:29
 */

@Mapper
@Repository("adminResDAO")
public interface IAdminResDAO extends BaseCommonDAO<AdminResQuery, AdminResDO> {

    /**
     * 根据资源树
     */
    List<AdminResDO> queryTreeList(AdminResQuery query) throws DAOException;

    /**
     * 查询资源列表(全部，不分页，不关联账号，系统管理员专用)
     */
    List<AdminResDO> queryAllList(AdminResQuery query) throws DAOException;

    /**
     * 查询某用户的所有资源
     */
    Set<AdminResDO> queryUserResList(AdminResQuery query) throws DAOException;

    /**
     * 返回某人所拥有的资源ID
     */
    AdminResDO queryHasChecked(AdminResQuery query) throws DAOException;

    /**
     * 删除关联表
     */
    void deleteRoleRes(Integer resId) throws DAOException;

    /**
     * 批量删除关联表
     */
    void deleteBatchRoleRes(List<Integer> idsList) throws DAOException;
}
